1. Field of the Invention
The present invention relates to an apparatus and methods for displaying graphic information. More particularly, the present invention relates to a data processing apparatus and methods for detecting cursors in a computer memory having parity bits.
2. Art Background
Many computer display systems employ a frame buffer coupled between the central processing unit (CPU) and the display. A frame buffer is a memory into which the CPU writes data to be displayed. Each pixel on the display screen is represented by at least one memory location in the frame buffer, forming a bitmap of the actual screen. The contents of each memory location in the frame buffer is scanned and displayed on the screen before it is refreshed by new image data.
Once graphic images are generated on the screen, it is convenient for users to interact with, or modify, the images by pointing at them. A cursor is an on-screen position indicator controlled by a class of control devices such as a mouse, trackball, lightpen, touchscreen, and the like. A standard problem in designing frame buffers that drive graphic display systems is to disassociate the rendering of the cursor with that of the rendering of graphic images. The ultimate goal is to reduce the CPU time needed to manipulate the cursor, while maintaining the cost of additional hardware and/or software at a minimum.
One prior art approach is to have two separate frame buffers, one for the rendering of graphic images, the other for displaying the cursor. The cursor frame buffer may be the same size as, or smaller than, the display screen. While this solution requires no special hardware, the disadvantage is the cost of a separate memory plane.
Another technique is to force the software to check whether the cursor lies within a predetermined area before rendering graphic images. The area is defined by a bounding box. The disadvantage of this technique is that the repeated checking, regardless of whether the cursor lies within the bounding box, consumes a lot of CPU time, and hence adversely affects the overall performance of the graphic display system.
A variation of the preceding technique is to incorporate base-bounds registers as part of the frame buffer interface. The base register contains the lowest memory address of the cursor data, and the bounds register contains the highest address. When any reference is made to the location between the memory addresses of the base-bounds register, the frame buffer interface generates an interrupt to alert the CPU that it is about to overwrite the cursor data with the original image data. Image manipulation will follow before the cursor data is restored and the interrupt is disabled. Although it requires less CPU time to manipulate the cursor than the preceding software technique, the cursor interrupts reduce the frame buffer access bandwidth--the rate at which the frame buffer can be updated.
As will be described more fully below, the present invention provides methods and an apparatus for detecting multiple cursors in a frame buffer formed as part of the main computer memory. The present invention incorporates a modest amount of hardware in order to substantially reduce the CPU time needed to manipulate multiple cursors. The overall performance of graphic display systems using the present invention is improved because the manipulation of cursors can be carried out while maintaining a high frame buffer access bandwidth.